package com.lnking.lnkingplace.Util;

import lombok.Data;
import org.apache.commons.lang3.StringUtils;

@Data
public class DataDesensitizedUtils {
    /**
     * 功能描述：手机号脱敏
     * 脱敏规则：保留前三后三, 比如18368158794置换为183*****794
     * @param phoneNumber 手机号
     * @return
     */
    public static String desensitizedPhoneNumber(String phoneNumber) {
        if(StringUtils.isNotEmpty(phoneNumber)){
            phoneNumber = phoneNumber.trim().replaceAll("(\\d{3})\\d{4}(\\d{4})", "$1****$2");
        }
        return phoneNumber;
    }

    /**
     * 功能描述：身份证号脱敏
     * 脱敏规则：保留前六后三, 适用于15位和18位身份证号
     * @param idNumber 身份证号
     * @return
     */
    public static String desensitizedIdNumber(String idNumber) {
        if (StringUtils.isNotBlank(idNumber)) {
            return StringUtils.left(idNumber.trim(), 6).concat(StringUtils.removeStart(StringUtils.leftPad(StringUtils.right(idNumber.trim(), 3), StringUtils.length(idNumber.trim()), "*"), "******"));
        }
        return idNumber;
    }
}
